package com.xu.system.service;

import com.xu.base.model.BaseSelectVo;
import com.xu.mybatis.model.PageInfo;
import com.xu.system.model.pojo.user.*;

import java.util.List;

/**
 * 用户服务服务
 *
 * @Author: 许乾伟
 * @Date: 2024/12/17 14:18
 */
public interface IUserService {

    /**
     * 新增用户服务
     *
     * @param req
     * @return
     */
    boolean add(AddUserReq req);

    /**
     * 更新用户服务
     *
     * @param req
     * @return
     */
    boolean edit(EditUserReq req);

    /**
     * 删除用户服务
     *
     * @param userId 用户服务ID
     * @return
     */
    boolean del(Long userId);

    /**
     * 用户服务详情
     *
     * @param userId 用户服务ID
     * @return
     */
    UserVo detail(Long userId);

    /**
     * 分页查询用户服务列表
     *
     * @param req
     * @return
     */
    PageInfo<UserSimpleVo> pageInfo(QueryUserReq req);

    /**
     * 查询用户服务导出列表
     *
     * @param req
     * @return
     */
    List<UserExcelVo> exportList(QueryUserReq req);

    /**
     * 重置密码
     * @param userId
     * @return
     */
    boolean resetPwd(Long userId);
    /**
     * 修改密码
     * @param req
     * @return
     */
    boolean changePwd(ChangePwdReq req);

    /**
     * 修改状态
     * @param userId
     * @param status
     * @return
     */
    boolean changeStatus(Long userId, Boolean status);

    /**
     * 用户下拉列表
     * @return
     */

    List<BaseSelectVo<Long, String>> allSelectList();
}